package main

import (
	"fmt"
)

/*
*
【1】映射(map),Go语言中内置的一种类型，它将键值对相关联，我们可以通过键 key来获取对应的值 value。 类似其它语言的集合

	PS:key、value的类型:bool、数字、string、指针、channel、还可以是只包含前面几个类型的接口、结构体、数组
		key		通常为	int、string类型， 不可以是：slice、map、function
		value	通常为数字(整数、浮点数)、string、map、结构体

【2】语法： var myMap map[keyType]valueType
*/
func main() {
	test()
	//test01()
	//test01()
	//test02()
}

// 第三种方式创建
func test02() {

	m1 := map[int]string{
		10: "ten",
		11: "eleven",
		12: "twelve",
	}

	fmt.Println(m1)
}

// 第二种方式创建
func test01() {
	m := make(map[int]string, 1)
	m[2] = "one"
	m[1] = "two"
	m[10] = "ten"
	fmt.Println(m)
	fmt.Println("长度是： ", len(m))
}

// 第一种创建方式
func test() {
	// 定义map变量
	// 只声明map内存是没分配空间
	var m map[int]string
	// 必须通过make函数进行初始化，才会分配空间
	m = make(map[int]string)
	fmt.Println("长度是： ", len(m))
	fmt.Println(m)
	m[1] = "one"
	m[2] = "two"
	m[10] = "ten"
	m[5] = "five"
	m[3] = "张三"
	m[31] = "张三"
	fmt.Println(m)
	fmt.Println("长度是： ", len(m))
}
